<!--
 * @Description: 
 * @ComposerRequire: 
 * @ComposerRemove: 
 * @Author: 阿海 <764882431@qq.com>
 * @Date: 2021-06-08 09:13:21
 * @LastEditTime: 2021-07-01 14:27:50
 * @LastEditors: 阿海
-->

{extend name="builder/public/common" /}

{block name="style"}
<link href="__LAYER_MODULES__/soulTable/soulTable.css" rel="stylesheet"/>
{/block}

{block name="main"}

{include file='builder/public/layui-breadcrumb'}



<div class="layui-card layadmin-body">
        <div class="layui-card-header layui-row page_title layui-hide">
            
        </div>

        <!--数据表格区域-->
        <div class="layui-card-body layadmin-table layui-hide"> 
            <!--搜索区域-->
            <div class="layui-row layuiadmin-search"></div>
            <div class="layui-row layui-col-space15 page_tips">
              <div class="layui-col-md12">
                <div class="layui-panel">
                  <div style="padding: 10px 15px;background-color: #F6F6F6;" class="page_tips_content"></div>
                </div>
              </div>
            </div>
          
            <table id="myTable" lay-filter="myTable"></table>
            <script type="text/html" id="myToolbar"></script>
        </div>
        <!--form表单区域-->
        <div class="layui-card-body layadmin-form layui-hide">
            <div class="layui-row layui-col-space15 page_tips">
                <div class="layui-col-md12">
                  <div class="layui-panel">
                    <div style="padding: 10px 15px;background-color: #F6F6F6;" class="page_tips_content"></div>
                  </div>
                </div>
            </div>
            <div  class="layui-col-md12 layui-row " style="margin:10px 0;">
                <form class="layui-form" id="myForm" action=""> </form>
            </div>
        </div>
        <!--错误提示-->
        <article class="dispatch-page minWP text-c layui-hide">
            <p class="dispatch-title"><i class="iconfont  va-m"></i><span class="va-m"> </span></p>
            <p class="dispatch-description"></p>
            <p class="dispatch-info"> 页面自动<a href="javascript:;" onClick="dispatchUrl(this)" _href="" is_hash="1" class="c-primary" _result="0">跳转</a>，等待时间：<b id="wait"></b>秒</p>
        </article>
</div>


<script>
  try {
      //页面刷新时，重置请求限制频次
      store.set('history_request_url', null);
      store.set('last_request_time', null);
      var router = new Router();
      var requestTime = 3000;//请求限制毫秒数 3秒
      router.on('change', function (curUrl) {
          //关闭所有的弹出层，避免上一次刷新层的弹窗存在:如 提示框【page_tip】
          layer.closeAll();
          layui.use(['layer', 'table'], function () {
              var layer = layui.layer;
              var http = new Request({ token_url: api.token_url });
              var hash = location.hash.slice(1) == '' ? api.consoles : location.hash.slice(1);//为空时读取控制页数据
              var historyRequestUrl = store.get('history_request_url');
              var lastRequestTime = store.get('last_request_time')

              if (lastRequestTime > (new Date().getTime())) {
                  if (historyRequestUrl == hash) {
                      layer.msg(parseInt(requestTime / 1000) + "秒内只允许刷新一次数据", function () { });
                      return false;
                  }
              }
              store.set('history_request_url', hash);
              store.set('last_request_time', new Date().getTime() + requestTime);
              layer.load();
              // console.log(server + "/" + hash);
              var hashUrl = server + "/" + hash + window.location.search;
              if(hash.substr(0,1) == '/'){
                hashUrl = server + hash + window.location.search;
              }
              // console.log(hashUrl);
              var res = http.request('get', hashUrl);
              // console.log(res);
              if (res.code != 0 || res.data.store == undefined) {
                  // layer.msg('URL地址不存在,正在回退！');
                  layer.closeAll('loading');
                  // setTimeout(function(){
                  //   
                  // },1000);
                  layer.confirm('数据异常，是否返回上一步？', {
                      title:'',
                      area:['300px','auto'],
                      btn: ['确定', '取消'], //可以无限个按钮
                      skin: '', //样式类名
                  }, function (index, layero) {
                      history.back(-1);//当地址失败时，进行回退
                  }, function (index) {
                      //按钮【按钮二】的回调
                      layer.closeAll();
                  });
                  return false;
              }
             
              //构建表格==>soultable
              if(res.data.store == 'soultable'){
                $(".layadmin-form").addClass("layui-hide");
                $(".layadmin-table").removeClass("layui-hide");
                $(".dispatch-page").addClass("layui-hide");
                //检测数据表格参数 如果开启调试模式时，console.log参数错误信息
                checkTableDebug(res.data);
                //构建搜索框
                builderSearch(res.data.search_columns, layer);
                //构建表格工具栏
                builderToolbar(res.data);
                //构建表格 + 处理数据 +绑定事件
                builderSoulTable(res.data);
              }

              //构建表格==>treegrid
              if(res.data.store == 'treegrid'){
                $(".layadmin-form").addClass("layui-hide");
                $(".layadmin-table").removeClass("layui-hide");
                $(".dispatch-page").addClass("layui-hide");
                //检测数据表格参数 如果开启调试模式时，console.log参数错误信息
                checkTableDebug(res.data);
                //构建搜索框
                builderSearch(res.data.search_columns, layer);
                // //构建表格工具栏
                // builderToolbar(res.data);
                // //构建表格 + 处理数据 +绑定事件
                builderTreeGrid(res.data);
              }
              // console.log('11',res.data.store);
              if(res.data.store == 'form'){
                $(".layadmin-form").removeClass("layui-hide");
                $(".layadmin-table").addClass("layui-hide");
                $(".dispatch-page").addClass("layui-hide");
                builderForm(res.data);
              }
              //构建页面其他元素 页面标题+提示层等等
              builderLayoutOther(res.data);
              // layer.msg(res.msg);
              layer.closeAll('loading');
              createBreadcrumb($('.page_title').text());
          })
      });
  } catch (err) {
      console.error(err);
  }
  

</script>

<!--table构建搜索的js-->
{include file='builder/table/search'}
<!--table构建工具栏的js-->
{include file='builder/table/toolbar'}

<!--table构建主体的js-->
{include file='builder/table/soul_table'}
<!--table构建主体的js-->
{include file='builder/table/tree_grid'}

<!--table 表格中使用return_url:处理按钮点击事件的链接-->
{include file='builder/table/return_url'}

<!--table构建时，开启debug验证时的js-->
{include file='builder/table/table_debug'}

<!--页面上的标题、提示词等等-->
{include file='builder/public/layout-other'}

<!--form表单构建的js-->
{include file='builder/form/form'}
<!--过渡页面显示效果的js-->
{include file='builder/form/dispatch'}

{/block}

{block name='model'} 
<!--图标库的model块-->
{include file='builder/form/icon_layer'}
{/block}